package com.freemalll.merchant.domain.vo.merchantReport;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;

/**
 * 商户业务表现累计数据表 DTO
 */
@Data
@Schema(description = "商户业务表现数据")
public class MerchantBizPerfVo {

    @Schema(description = "商户ID", example = "M123456")
    private String bizId;

    @Schema(description = "入驻时间，格式：yyyy-MM-dd HH:mm:ss", example = "2025-01-01 10:00:00")
    private LocalDateTime addTime;

    @Schema(description = "支持金融机构数量", example = "5")
    private Integer supportSourceCnt;

    @Schema(description = "产品数", example = "10")
    private Integer productCnt;

    @Schema(description = "商户激活状态 0：未激活;1：已激活;-1上线中;-2冻结", example = "1")
    private String bizActivationStatus;

    @Schema(description = "放款限制说明", example = "节假日不放款")
    private String loanLimit;

    @Schema(description = "最长期限（单位：天）", example = "360")
    private Integer maxTimes;

    @Schema(description = "单笔最高额度", example = "500000.00")
    private BigDecimal maxAmount;

    @Schema(description = "日限额", example = "1000000.00")
    private BigDecimal dayLimit;

    @Schema(description = "月限额", example = "10000000.00")
    private BigDecimal monthLimit;

    @Schema(description = "授信客户数", example = "200")
    private Integer flowPassUserCnt;

    @Schema(description = "申请订单数", example = "500")
    private Integer applyCnt;

    @Schema(description = "批核率（百分比）", example = "0.85")
    private BigDecimal passRatio;

    @Schema(description = "签约率（百分比）", example = "0.75")
    private BigDecimal signRatio;

    @Schema(description = "放款规模（元）", example = "8000000.00")
    private BigDecimal loanAmt;

    @Schema(description = "在贷余额（元）", example = "6000000.00")
    private BigDecimal balanceAmt;

    @Schema(description = "逾期率（百分比）", example = "0.02")
    private BigDecimal overAmtRatio;

    @Schema(description = "首逾率（百分比）", example = "0.01")
    private BigDecimal fpdOverAmtRatio;

    @Schema(description = "不良率（百分比）", example = "0.005")
    private BigDecimal poorOverAmtRatio;

    @Schema(description = "最后一笔进件日期，格式：yyyy-MM-dd", example = "2025-04-01")
    private LocalDate lastOrderAddDate;

    @Schema(description = "最后一笔放款日期，格式：yyyy-MM-dd", example = "2025-04-05")
    private LocalDate lastLoanDate;

    @Schema(description = "月均放款规模（元）", example = "2000000.00")
    private BigDecimal monthAvgLoanAmt;

    @Schema(description = "历史单月最高放款规模（元）", example = "3000000.00")
    private BigDecimal hisMaxLoanAmt;

    @Schema(description = "退货率（百分比）", example = "0.01")
    private BigDecimal returnRatio;

    @Schema(description = "新增放款规模（元）", example = "1500000.00")
    private BigDecimal newLoanAmt;

    @Schema(description = "新增逾期率（百分比）", example = "0.015")
    private BigDecimal newOverAmtRatio;

    @Schema(description = "新增首逾率（百分比）", example = "0.01")
    private BigDecimal newFpdOverAmtRatio;

    @Schema(description = "新增不良率（百分比）", example = "0.004")
    private BigDecimal newPoorOverAmtRatio;

    @Schema(description = "更新时间，格式：yyyy-MM-dd HH:mm:ss", example = "2025-05-10 14:30:00")
    private LocalDateTime updateTime;

}
